Playing
a Waveform-Audio File
The following
example opens a waveform-audio device and plays the waveform-audio file
specified by the lpszWAVEFileName parameter.
// Plays a specified waveform-audio file using
MCI_OPEN and MCI_PLAY.
// Returns when playback begins. Returns 0L on
success, otherwise
// returns an MCI error code.
DWORD playWAVEFile(HWND hWndNotify, LPSTR
lpszWAVEFileName)
{
UINT
wDeviceID;
DWORD
dwReturn;
MCI_OPEN_PARMS mciOpenParms;
MCI_PLAY_PARMS mciPlayParms;
// Open the
device by specifying the device and filename.
// MCI
will choose a device capable of playing the specified file.
mciOpenParms.lpstrDeviceType = "waveaudio";
mciOpenParms.lpstrElementName = lpszWAVEFileName;
if
(dwReturn = mciSendCommand(0, MCI_OPEN,
MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
(DWORD)(LPVOID) &mciOpenParms))
{
//
Failed to open device. Don't close it; just return error.
return
(dwReturn);
}
// The
device opened successfully; get the device ID.
wDeviceID
= mciOpenParms.wDeviceID;
// Begin
playback. The window procedure function for the parent
// window
will be notified with an MM_MCINOTIFY message when
//
playback is complete. At this time, the window procedure closes
// the
device.
mciPlayParms.dwCallback = (DWORD) hWndNotify;
if
(dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY,
(DWORD)(LPVOID) &mciPlayParms))
{
mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
return
(dwReturn);
}
return
(0L);
}